RRRRSSSSAAAA____sssseeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) is used to set application specific data,
the data is supplied in the aaaarrrrgggg parameter and its precise
meaning is up to the application.
RRRRSSSSAAAA____ggggeeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) is used to retrieve application specific
data. The data is returned to the application, this will be
the same value as supplied to a previous RRRRSSSSAAAA____sssseeeetttt____eeeexxxx____ddddaaaattttaaaa(((())))
call.
nnnneeeewwww____ffffuuuunnnncccc(((()))) is called when a structure is initially allocated
(for example with RRRRSSSSAAAA____nnnneeeewwww(((()))). The parent structure members
will not have any meaningful values at this point. This
function will typically be used to allocate any application
specific structure.
ffffrrrreeeeeeee____ffffuuuunnnncccc(((()))) is called when a structure is being freed up.
The dynamic parent structure members should not be accessed
because they will be freed up when this function is called.
nnnneeeewwww____ffffuuuunnnncccc(((()))) and ffffrrrreeeeeeee____ffffuuuunnnncccc(((()))) take the same parameters. ppppaaaarrrreeeennnntttt
is a pointer to the parent RSA structure. ppppttttrrrr is a the
application specific data (this wont be of much use in
nnnneeeewwww____ffffuuuunnnncccc(((()))). aaaadddd is a pointer to the CCCCRRRRYYYYPPPPTTTTOOOO____EEEEXXXX____DDDDAAAATTTTAAAA structure
from the parent RSA structure: the functions
CCCCRRRRYYYYPPPPTTTTOOOO____ggggeeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) and CCCCRRRRYYYYPPPPTTTTOOOO____sssseeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) can be called
to manipulate it. The iiiiddddxxxx parameter is the index: this will
be the same value returned by RRRRSSSSAAAA____ggggeeeetttt____eeeexxxx____nnnneeeewwww____iiiinnnnddddeeeexxxx(((()))) when
the functions were initially registered. Finally the aaaarrrrggggllll
and aaaarrrrggggpppp parameters are the values originally passed to the
same corresponding parameters when RRRRSSSSAAAA____ggggeeeetttt____eeeexxxx____nnnneeeewwww____iiiinnnnddddeeeexxxx(((())))
was called.
dddduuuupppp____ffffuuuunnnncccc(((()))) is called when a structure is being copied.
Pointers to the destination and source CCCCRRRRYYYYPPPPTTTTOOOO____EEEEXXXX____DDDDAAAATTTTAAAA
structures are passed in the ttttoooo and ffffrrrroooommmm parameters
respectively. The ffffrrrroooommmm____dddd parameter is passed a pointer to
the source application data when the function is called,
when the function returns the value is copied to the
destination: the application can thus modify the data
pointed to by ffffrrrroooommmm____dddd and have different values in the source
and destination. The iiiiddddxxxx, aaaarrrrggggllll and aaaarrrrggggpppp parameters are the
same as those in nnnneeeewwww____ffffuuuunnnncccc(((()))) and ffffrrrreeeeeeee____ffffuuuunnnncccc(((()))).
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSS
RRRRSSSSAAAA____ggggeeeetttt____eeeexxxx____nnnneeeewwww____iiiinnnnddddeeeexxxx(((()))) returns a new index or -1 on failure
(note 0 is a valid index value).
RRRRSSSSAAAA____sssseeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) returns 1 on success or 0 on failure.
RRRRSSSSAAAA____ggggeeeetttt____eeeexxxx____ddddaaaattttaaaa(((()))) returns the application data or 0 on